# 封装
class User(object):
    def __init__(self, name, age):
        self._name = name  # 收保护的变量 这是一种约定 并没有实际的校
        self.__age = age  # 私有变量


    # 显示方法
    def show(self):
        print(self._name, self.__age)

    @property  # 装饰器  直接把方法当成属性来用
    def get_age(self):
        return self.__age

        # 修改方法

    @get_age.setter  # 变量的修改器 
    def set_age(self, age):
        if age > 0 and age < 100:
            self.__age = age
        else:
            print('年龄不合法')

    def set_name(self, name):
        self._name = name


    def get_name(self):
        return self._name

user = User('张三', 18)
# print(user.age)
user.show()
user.set_age(10)
print(user.get_age)
